package br.gov.mi.corporativo.dominio.boundary.rhmi.funcionario;

import java.util.Date;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebService;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import br.gov.mi.corporativo.dominio.entidade.rhmi.Funcionario;
import br.gov.mi.corporativo.dominio.repositorio.rhmi.FuncionarioRepositorio;
import br.gov.mi.infraestrutura.crud.CrudServicoImpl;

@Component
@Transactional(readOnly=true)
@WebService(endpointInterface = "br.gov.mi.corporativo.dominio.boundary.rhmi.funcionario.FuncionarioEndPoint")
public class FuncionarioServico extends CrudServicoImpl<Funcionario, Long, FuncionarioRepositorio>  implements FuncionarioEndPoint{

	@Inject
	public void setRepository(FuncionarioRepositorio repositorio) {
		super.setRepositorio(repositorio);
	}
	
	@Override
	public Funcionario recuperarPorIdFuncionario(Long idFuncionario) {
		return repositorio.findByIdFuncionario(idFuncionario);
	}

	@Override
	public List<Funcionario> recuperarPorIdTratamento(Long idTratamento) {
		return repositorio.findByIdTratamento(idTratamento);
	}

	@Override
	public List<Funcionario> recuperarPorIdProfissao(Long idProfissao) {
		return repositorio.findByIdProfissao(idProfissao);
	}

	@Override
	public List<Funcionario> recuperarPorIdMunicipioNascimento(Long idMunicipioNascimento) {
		return repositorio.findByIdMunicipioNascimento(idMunicipioNascimento);
	}

	@Override
	public List<Funcionario> recuperarPorNrMatriculaSiape(String nrMatriculaSiape) {
		return repositorio.findByNrMatriculaSiape(nrMatriculaSiape);
	}

	@Override
	public List<Funcionario> recuperarPorNmPessoaFisica(String nmPessoaFisica) {
		return repositorio.findByNmPessoaFisicaContainingIgnoreCaseOrderByNmPessoaFisicaAsc(nmPessoaFisica);
	}

	@Override
	public List<Funcionario> recuperarPorDtNascimento(Date dtNascimento) {
		return repositorio.findByDtNascimento(dtNascimento);
	}

	@Override
	public List<Funcionario> recuperarPorStSexo(Boolean stSexo) {
		return repositorio.findByStSexo(stSexo);
	}

	@Override
	public List<Funcionario> recuperarPorCsGrupoSanguineo(String csGrupoSanguineo) {
		return repositorio.findByCsGrupoSanguineo(csGrupoSanguineo);
	}

	@Override
	public List<Funcionario> recuperarPorCsFatorRh(String csFatorRh) {
		return repositorio.findByCsFatorRh(csFatorRh);
	}

	@Override
	public List<Funcionario> recuperarPorCsCor(String csCor) {
		return repositorio.findByCsCor(csCor);
	}

	@Override
	public List<Funcionario> recuperarPorCsEstadoCivil(String csEstadoCivil) {
		return repositorio.findByCsEstadoCivil(csEstadoCivil);
	}

	@Override
	public List<Funcionario> recuperarPorNmPai(String nmPai) {
		return repositorio.findByNmPai(nmPai);
	}

	@Override
	public List<Funcionario> recuperarPorNmMae(String nmMae) {
		return repositorio.findByNmMae(nmMae);
	}

	@Override
	public List<Funcionario> recuperarPorDsLoginMi(String dsLoginMi) {
		return repositorio.findByDsLoginMi(dsLoginMi);
	}

	@Override
	public List<Funcionario> recuperarPorDsSenha(String dsSenha) {
		return repositorio.findByDsSenha(dsSenha);
	}

	@Override
	public List<Funcionario> recuperarPorStAtivo(String stAtivo) {
		return repositorio.findByStAtivo(stAtivo);
	}

	@Override
	public List<Funcionario> recuperarPorStRegistro(String stRegistro) {
		return repositorio.findByStRegistro(stRegistro);
	}
	
  
	
}
